home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------------
- ; .ss.
- ; `²²'
- ; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
- ; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
- ; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
- ; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
- ; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
- ; .sS²°$$$²²°"' d²°'
- ; .$$² .$$'
- ; $$$.,d$$'
- ; `²S$$S²'
- ;------------------------------------------------------------------------------
- ; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
- ;------------------------------------------------------------------------------
- ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
- ;------------------------------------------------------------------------------
-
- Integer INTEGER001
- Integer INTEGER002
- Integer INTEGER003
- Integer INTEGER004
- Integer INTEGER005
- Integer INTEGER006
- String STRING001
- String STRING002
- String STRING003
- String STRING004
- String STRING005
- String STRING006
- String STRING007
- String STRING008
- String STRING009
- String STRING010
- String STRING011
- String STRING012
- String STRING013
- String STRING014
- String STRING015
- String TSTRING016(100)
- String STRING017
- String STRING018
- String STRING019
- String STRING020
- String STRING021
- String STRING022
- String STRING023
- String STRING024
- String STRING025
- String STRING026
- String STRING027
- String TSTRING028(8)
- String STRING029
- String TSTRING030(8)
- String STRING031
-
- ;------------------------------------------------------------------------------
-
- FDefIn 7
- GetUser
- U_FSE = 1
- U_FSEP = 0
- PutUser
- STRING001 = "1.00"
- STRING022 = Chr(And(212, 127)) + Chr(And(232, 127)) + Chr(And(233, 127)) + Chr(And(243, 127)) + Chr(And(160, 127)) + Chr(And(243, 127))
- STRING023 = Chr(And(239, 127)) + Chr(And(230, 127)) + Chr(And(244, 127)) + Chr(And(247, 127)) + Chr(And(225, 127)) + Chr(And(242, 127))
- STRING024 = Chr(And(229, 127)) + Chr(And(160, 127)) + Chr(And(233, 127)) + Chr(And(243, 127)) + Chr(And(160, 127)) + Chr(And(213, 127))
- STRING025 = Chr(And(206, 127)) + Chr(And(210, 127)) + Chr(And(197, 127)) + Chr(And(199, 127)) + Chr(And(201, 127)) + Chr(And(211, 127))
- STRING026 = Chr(And(212, 127)) + Chr(And(197, 127)) + Chr(And(210, 127)) + Chr(And(197, 127)) + Chr(And(196, 127)) + Chr(And(161, 127))
- STRING027 = STRING022 + STRING023 + STRING024 + STRING025 + STRING026
- INTEGER003 = PcbNode()
- INTEGER001 = 0
- FOpen 1, PPEPath() + "MAILUU.CFG", 0, 0
- FGet 1, STRING007
- FGet 1, STRING010
- FGet 1, STRING011
- FGet 1, STRING005
- FGet 1, STRING008
- FGet 1, STRING012
- FGet 1, STRING013
- FGet 1, STRING014
- If (Ferr(1)) Then
- Goto LABEL008
- Endif
- FClose 1
- If (CurSec() < STRING013) Then
- Cls
- PrintLn
- PrintLn
- PrintLn " You do not have high enough security to use NETMAIL"
- Delay 36
- End
- Endif
- If (Len(Strip(STRING010, " ") + Strip(STRING011, " ")) < 8) Then
- Goto LABEL011
- Endif
- STRING029 = ""
- For INTEGER005 = 1 To 4
- TSTRING028(INTEGER005) = Mid(Strip(STRING010, " "), Len(STRING010) - INTEGER005 + 1, 1) + Mid(Strip(STRING011, " "), Len(STRING011) - INTEGER005 + 1, 1)
- STRING029 = STRING029 + TSTRING028(INTEGER005)
- Next
- TSTRING030(1) = Asc(Mid(STRING029, 1, 1)) % 6
- TSTRING030(2) = Asc(Mid(STRING029, 2, 1)) % 7
- TSTRING030(3) = Asc(Mid(STRING029, 3, 1)) % 8
- TSTRING030(4) = Asc(Mid(STRING029, 4, 1)) % 9
- TSTRING030(5) = Asc(Mid(STRING029, 5, 1)) % 7
- TSTRING030(6) = Asc(Mid(STRING029, 6, 1)) % 5
- TSTRING030(7) = Asc(Mid(STRING029, 7, 1)) % 9
- TSTRING030(8) = Asc(Mid(STRING029, 8, 1)) % 4
- STRING029 = ""
- For INTEGER005 = 1 To 8
- STRING029 = STRING029 + TSTRING030(INTEGER005)
- Next
- If (STRING029 <> STRING012) Then
- STRING031 = "Y"
- Else
- STRING031 = "N"
- Endif
- Join STRING014
- If (Upper(STRING008) <> "NONE") Then
- If (Right(STRING008, 1) <> "\") Then
- STRING008 = STRING008 + "\"
- Endif
- If (Mid(STRING008, 2, 2) <> ":\") Then
- Else
- Endif
- :LABEL001
- Cls
- DispFile STRING007, 1
- If (STRING031 == "Y") Then
- Goto LABEL002
- Endif
- :LABEL002
- PrintLn "@X1FBaseMail v" + STRING001 + Space(55 - Len(STRING001) - Len(STRING011)) + "Registered to " + STRING011
- If (Upper(STRING008) <> "NONE") Then
- InputStr "Choose option 1, 2 or 3: ", INTEGER002, 14, 1, "123", 128 + 64
- Else
- InputStr "Choose option 1 or 2: ", INTEGER002, 14, 1, "12", 128 + 64
- Endif
- Cls
- :LABEL003
- Select Case (INTEGER002)
- Case 1
- PrintLn
- Input "Type in person's name, or hit Enter to abort:", STRING002
- If (Len(STRING002) <= 1) Then
- Goto LABEL001
- Endif
- If (Len(Trim(STRING002, " ")) < 4) Then
- Goto LABEL009
- Endif
- PrintLn
- Input "Subject: ", STRING003
- If (Len(Trim(STRING003, " ")) < 1) Then
- Goto LABEL009
- Endif
- PrintLn
- If (INTEGER001 <> 1) Then
- Input "Fido Address (example 1:330/205)", STRING004
- Else
- INTEGER001 = 0
- Endif
- If (Len(Trim(STRING004, " ")) < 5) Then
- Goto LABEL009
- Endif
- PrintLn
- KbdStuff "E" + Chr(13) + STRING002 + Chr(13)
- KbdStuff STRING003 + Chr(13)
- KbdStuff "(" + STRING004 + ")" + Chr(13)
- KbdStuff "(HOLD)"
- KbdStuff Chr(13) + Chr(13)
- KbdStuff "BaseMail v1.0" + Chr(13)
- KbdStuff Chr(13) + Chr(13)
- Case 2
- PrintLn "Enter FULL Internet Address (example: steve.keith@swcbbs.com)"
- Input Chr(13), STRING006
- PrintLn Chr(13)
- If (Len(Trim(STRING006, " ")) < 7) Then
- Goto LABEL009
- Endif
- PrintLn "Enter the SUBJECT on the next line"
- Input Chr(13), STRING003
- PrintLn
- KbdStuff "E" + Chr(13) + "UUCP" + Chr(13)
- KbdStuff STRING003 + Chr(13)
- KbdStuff "(" + STRING005 + ")"
- KbdStuff Chr(13)
- KbdStuff "To: " + STRING006
- KbdStuff Chr(13) + Chr(13)
- KbdStuff "BaseMail v1.0" + Chr(13)
- Case 3
- INTEGER005 = 0
- StartDisp 1
- Input "Enter Sysop's LAST name, or address to search for", STRING009
- PrintLn
- Input "How many matches do you want? (Max/Default = 100)", STRING015
- If ((STRING015 == 0) || (STRING015 > 100)) Then
- STRING015 = 100
- Endif
- FCreate 2, PPEPath() + "NLS" + String(INTEGER003) + ".BAT", 2, 3
- If (Ferr(2)) Then
- Goto LABEL010
- Endif
- FPutLn 2, "@ECHO OFF"
- FPutLn 2, Left(STRING008, 3)
- FPutLn 2, "CD " + Left(STRING008, Len(STRING008) - 1)
- FPutLn 2, "QFRONT /MAX:" + STRING015 + " /SEARCH:" + STRING009 + " /NODE:" + String(INTEGER003)
- FPutLn 2, "IF EXIST QSRCH" + String(INTEGER003) + ".DAT GOTO END"
- FPutLn 2, "REM>QSRCH" + String(INTEGER003) + ".DAT"
- FPutLn 2, "ECHO NO MATCHES! > QSRCH" + String(INTEGER003) + ".DAT"
- FPutLn 2, ":END"
- If (Ferr(2)) Then
- Goto LABEL010
- Endif
- FClose 2
- Shell 1, INTEGER004, PPEPath() + "NLS" + String(INTEGER003) + ".BAT", STRING009
- FOpen 7, STRING008 + "QSRCH" + String(INTEGER003) + ".DAT", 0, 3
- FDefIn 7
- :LABEL004
- If (Ferr(7)) Goto LABEL007
- Inc INTEGER005
- If (INTEGER005 < 10) Then
- STRING021 = " "
- ElseIf (INTEGER005 < 100) Then
- STRING021 = " "
- Else
- STRING021 = ""
- Endif
- FDGet TSTRING016(INTEGER005)
- If (Strip(TSTRING016(INTEGER005), " ") == "NOMATCHES!") Then
- Cls
- PrintLn
- PrintLn
- PrintLn "The specified string could not be found"
- PrintLn
- PrintLn
- More
- ElseIf (Ferr(7)) Then
- INTEGER005 = INTEGER005 - 1
- If (INTEGER005 % 4 == 0) Then
- Goto LABEL007
- Else
- :LABEL005
- Input "Choose a number: ", INTEGER006
- If (INTEGER006 > INTEGER005) Then
- Goto LABEL005
- ElseIf (INTEGER006 < 1) Then
- Goto LABEL007
- Else
- STRING004 = Trim(TSTRING016(INTEGER006), " ")
- INTEGER001 = 1
- Else
- Endif
- Endif
- FDGet STRING017
- FDGet STRING018
- FDGet STRING019
- FDGet STRING020
- TSTRING016(INTEGER005) = Left(TSTRING016(INTEGER005), 12)
- STRING017 = Left(STRING017, 30)
- STRING018 = Left(STRING018, 30)
- STRING019 = Left(STRING019, 30)
- STRING020 = Left(STRING020, 30)
- PrintLn
- PrintLn "@X09[" + STRING021 + String(INTEGER005) + "] - @X0A" + TSTRING016(INTEGER005) + " @X0E" + STRING020
- PrintLn " @X09Name: " + STRING017
- PrintLn " @X09City: " + STRING018
- PrintLn " @X09System: " + STRING019
- PrintLn "_________________________________________________________"
- If (INTEGER005 % 4 == 0) Then
- :LABEL006
- Input "Choose a number: ", INTEGER006
- If (INTEGER006 > INTEGER005) Then
- Goto LABEL006
- ElseIf (INTEGER006 < 1) Then
- Cls
- PrintLn
- PrintLn "@X09[" + STRING021 + String(INTEGER005) + "] - @X0A" + TSTRING016(INTEGER005) + " @X0E" + STRING020
- PrintLn " @X09Name: " + STRING017
- PrintLn " @X09City: " + STRING018
- PrintLn " @X09System: " + STRING019
- PrintLn "_________________________________________________________"
- Else
- STRING004 = Trim(TSTRING016(INTEGER006), " ")
- INTEGER001 = 1
- Else
- Endif
- Goto LABEL004
- Endif
- Endif
- :LABEL007
- FClose 7
- Cls
- Delete PPEPath() + "NLS" + String(INTEGER003) + ".BAT"
- INTEGER002 = 1
- If (INTEGER001 == 1) Then
- Goto LABEL003
- Else
- Goto LABEL001
- Endif
- Case 1
- End
- Case Else
- Goto LABEL001
- End Select
- Goto LABEL012
- :LABEL008
- PrintLn
- PrintLn "Error reading CFG file"
- PrintLn
- Goto LABEL012
- :LABEL009
- PrintLn Chr(13)
- PrintLn "Input appears to be too short" + Chr(13)
- Goto LABEL012
- Endif
- PrintLn Chr(13)
- PrintLn "ERROR IN CFG FILE"
- Goto LABEL012
- :LABEL010
- PrintLn Chr(13)
- PrintLn "ERROR OPENING OR CREATING FILE"
- Goto LABEL012
- :LABEL011
- PrintLn Chr(13)
- PrintLn "ERROR: BBSNAME AND USERNAME IN CFG ARE TOO SHORT"
- PrintLn "Must be greater than 8 characters total"
- :LABEL012
-
- ;------------------------------------------------------------------------------
- ;
- ; Usage report (before postprocessing)
- ;
- ; ■ Statements used :
- ;
- ; 2 End
- ; 6 Cls
- ; 1 More
- ; 80 Goto
- ; 48 Let
- ; 42 PrintLn
- ; 36 If
- ; 1 DispFile
- ; 9 Input
- ; 1 FCreate
- ; 2 FOpen
- ; 3 FClose
- ; 8 FGet
- ; 8 FPutLn
- ; 1 StartDisp
- ; 1 GetUser
- ; 1 PutUser
- ; 1 Delete
- ; 2 InputStr
- ; 1 Delay
- ; 1 Inc
- ; 1 Shell
- ; 14 KbdStuff
- ; 1 Join
- ; 2 FDefIn
- ; 5 FDGet
- ;
- ;
- ; ■ Functions used :
- ;
- ; 10 %
- ; 107 +
- ; 6 -
- ; 9 ==
- ; 6 <>
- ; 13 <
- ; 3 <=
- ; 3 >
- ; 4 >=
- ; 35 !
- ; 4 &&
- ; 3 ||
- ; 11 Len(
- ; 2 Upper()
- ; 11 Mid()
- ; 7 Left()
- ; 1 Right()
- ; 1 Space()
- ; 5 Ferr()
- ; 54 Chr()
- ; 8 Asc()
- ; 6 Trim()
- ; 5 Strip()
- ; 10 String()
- ; 4 PPEPath()
- ; 1 PcbNode()
- ; 1 CurSec()
- ; 30 And()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Analysis flags : WS
- ;
- ; W - Write user ■ 5
- ; Program writes a user record. Although this may be normal for a
- ; User Editor, it may also be a way to modify an account level.
- ; ■ Search for : PUTUSER
- ;
- ; S - Shell to DOS ■ 5
- ; This may be normal if the PPE need to execute an external command,
- ; but may be actually anything... nasty (formating HD, rebooting,...)
- ; or usefull (sorting, maintenance,...). Check!
- ; ■ Search for : SHELL
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Postprocessing report
- ;
- ; 2 For/Next
- ; 0 While/EndWhile
- ; 29 If/Then or If/Then/Else
- ; 1 Select Case
- ;
- ;------------------------------------------------------------------------------
- ; AEGiS Corp - Break the routines, code against the machines!
- ;------------------------------------------------------------------------------
-